home *** CD-ROM | disk | FTP | other *** search
/ Carousel / CAROUSEL.cdr / mactosh / hc / workstat.sit / WorkStation v3.8 / stack.txt < prev   
Text File  |  1988-02-26  |  19KB  |  552 lines

  1. -- stack: in.8
  2. -- format: 8 (HyperCard 1)
  3. -- flags: 0x0 (none)
  4. -- protect password hash: 0
  5. -- maximum user level: 5 (scripting)
  6. -- window: Rect(x1=0, y1=0, x2=0, y2=0)
  7. -- screen: Rect(x1=0, y1=0, x2=0, y2=0)
  8. -- card dimensions: w=0 h=0
  9. -- scroll: x=0 y=0
  10. -- background count: 2
  11. -- first background id: 2783
  12. -- card count: 9
  13. -- first card id: 3051
  14. -- list block id: 5738
  15. -- print block id: 0
  16. -- font table block id: 0
  17. -- style table block id: 0
  18. -- free block count: 2
  19. -- free size: 6016 bytes
  20. -- total size: 57344 bytes
  21. -- stack block size: 18432 bytes
  22. -- created by hypercard version: 0x00000000
  23. -- compacted by hypercard version: 0x00000000
  24. -- modified by hypercard version: 0x00000000
  25. -- opened by hypercard version: 0x00000000
  26. -- patterns[0]: 0x0000000000000000
  27. -- patterns[1]: 0x8000000008000000
  28. -- patterns[2]: 0x8800220088002200
  29. -- patterns[3]: 0x8888222288882222
  30. -- patterns[4]: 0x88AA22AA88AA22AA
  31. -- patterns[5]: 0xCCAA33AACCAA33AA
  32. -- patterns[6]: 0xEEAABBAAEEAABBAA
  33. -- patterns[7]: 0xEEBBBBEEEEBBBBEE
  34. -- patterns[8]: 0xFFBBFFEEFFBBFFEE
  35. -- patterns[9]: 0xFFBBFFFFFFBBFFFF
  36. -- patterns[10]: 0x8010022001084004
  37. -- patterns[11]: 0xFFFFFFFFFFFFFFFF
  38. -- patterns[12]: 0x8822882288228822
  39. -- patterns[13]: 0x1122448811224488
  40. -- patterns[14]: 0xC4800C6843023026
  41. -- patterns[15]: 0xB130031BD8C00C8D
  42. -- patterns[16]: 0xAA00AA00AA00AA00
  43. -- patterns[17]: 0x8822552288225522
  44. -- patterns[18]: 0x8855225588552255
  45. -- patterns[19]: 0x77DD77DD77DD77DD
  46. -- patterns[20]: 0x8000000000000000
  47. -- patterns[21]: 0xAA55AA55AA55AA55
  48. -- patterns[22]: 0x038448300C020101
  49. -- patterns[23]: 0x8244394482010101
  50. -- patterns[24]: 0x8814224188412214
  51. -- patterns[25]: 0x8080413E080814E3
  52. -- patterns[26]: 0x22048C7422179810
  53. -- patterns[27]: 0xBE808808EB088880
  54. -- patterns[28]: 0x25C8328964244C92
  55. -- patterns[29]: 0xA29C41BE2AC914EB
  56. -- patterns[30]: 0x40A00000040A0000
  57. -- patterns[31]: 0x8040200002040800
  58. -- patterns[32]: 0xAA00800088008000
  59. -- patterns[33]: 0xFF80808080808080
  60. -- patterns[34]: 0x081C22C180010204
  61. -- patterns[35]: 0xFF808080FF080808
  62. -- patterns[36]: 0xF87422478F172271
  63. -- patterns[37]: 0xBF00BFBFB0B0B0B0
  64. -- patterns[38]: 0xFF7FBE5DA2418000
  65. -- patterns[39]: 0xFAF5FAF5A050A050
  66. -- checksum: 0x0
  67. ----- HyperTalk script -----
  68. on openStack
  69.   global levelHolder, holdNum, dialNumber
  70.  
  71.   set the userLevel to 5
  72.   put long name of this stack into pathname
  73.   delete first word of pathname
  74.   set lockscreen to true
  75.   show bkgnd btn "Work Station┬⌐"
  76.   get script of bkgnd btn "Work Station┬⌐"
  77.   delete word 2 of line 2 of it
  78.   put ""&&pathname after word 1 of line 2 of it
  79.   set the script of bkgnd button "Work Station┬⌐" to it
  80.   hide bkgnd btn "Work Station┬⌐"
  81.   set lockscreen to false
  82.   hide menuBar
  83.   show bkgnd btn id 39
  84.   hide bkgnd btn id 40
  85. end openStack
  86. -----------------------------------------------------------------------
  87. on openCard
  88.   put the date into field "date/time"
  89. end openCard
  90. -----------------------------------------------------------------------
  91. on killButton
  92.   choose Button tool
  93.   click at the clickLoc
  94.   doMenu "Cut Button"
  95.   choose Browse tool
  96. end killButton
  97. -----------------------------------------------------------------------
  98. on WSHelp
  99.   push card
  100.   visual dissolve to gray
  101.   go to card id 7152
  102.   hide menuBar
  103.   set the scroll of field "info text" to 0
  104.   set the scroll of card field id 2 to 0
  105. end WSHelp
  106. -----------------------------------------------------------------------
  107. function clickLine
  108. return (trunc(((scroll of the target) + (item two of the clickloc) - (item two of the rect of the target)) div the textHeight of the target) + one)
  109. end ClickLine
  110. -----------------------------------------------------------------------
  111. on newWSCard
  112.   go to card "Main Card"
  113.   ask "Enter name of new Work Station cardΓǪ" with "             (maximum of 22 characters)"
  114.   if it is "             (maximum of 22 characters)" or it is empty then
  115.     exit newWSCard
  116.   else
  117.     put it into cardName
  118.     find cardName in field "card name"
  119.     if the result is empty then
  120.       beep
  121.       answer "Card title"&"e& cardName "e&" is already in use!"
  122.       exit newWSCard
  123.     else
  124.       if the length of cardName > 22 then
  125.         beep
  126.         answer "Only 22 characters are allowed! Try again..." with "OK"
  127.         exit newWSCard
  128.       end if
  129.     end if
  130.     push card
  131.     set cursor to 4
  132.     set lockScreen to true
  133.     doMenu "New Card"
  134.     put cardName into bkgnd field id 23
  135.     set the name of this card to cardName
  136.     pop card
  137.     get the number of items of card field id 8
  138.     add 1 to it
  139.     put cardName &"," into item it of card field id 8
  140.     set lockScreen to false
  141.     visual dissolve to black
  142.     go to card cardName
  143.     play harpsichord "g c"
  144.   end if
  145. end newWSCard
  146. -----------------------------------------------------------------------
  147. on deleteWSCard
  148.   ask "Enter name of card to be deletedΓǪ" with "    Enter name exactly as in card title field!"
  149.   if it is "    Enter name exactly as in card title field!" or it is empty then
  150.     exit deleteWSCard
  151.   else
  152.     put it into cardName
  153.     find cardName in bkgnd field "card name"
  154.     if the result is not empty then
  155.       beep
  156.       answer "Card"&"e& cardName "e&" not found in stack!"
  157.       exit deleteWSCard
  158.     else
  159.       visual dissolve to black
  160.       go to card cardName
  161.       play Boing "gq"
  162.       answer "Delete this cardΓǪ"&"e& cardName "e& "?" with "OK" or "Cancel"
  163.       if it is "OK" then
  164.         set lockScreen to true
  165.         set cursor to 4
  166.         doMenu "Delete Card"
  167.         doMenu "Compact Stack"
  168.         go to card id 3051
  169.         put cardName&"," into text
  170.         put offset (text,card field id 8) into start
  171.         put the length of text into count
  172.         put start + count into total
  173.         repeat until total = start
  174.           delete char start of card field id 8
  175.           subtract 1 from total
  176.         end repeat
  177.         set lockScreen to false
  178.       end if
  179.     end if
  180.   end if
  181.   play harpsichord "gq cq"
  182.   choose Browse tool
  183. end deleteWSCard
  184. -----------------------------------------------------------------------
  185. on newPhoneName
  186.   play harpsichord "cq"
  187.   ask "Enter the new name and phone numberΓǪ" with "         Ann E. Macintosh, 1-214-555-1212"
  188.   if it is "         Ann E. Macintosh, 1-214-555-1212" or it is empty then
  189.     pop card
  190.     exit newPhoneName
  191.   else
  192.     set cursor to 4
  193.     set lockScreen to true
  194.     put it into phoneName
  195.     put last item of phoneName into holder
  196.     put "    "&holder into last item of phoneName
  197.     get the number of lines of card field id 1
  198.     add 1 to it
  199.     put phoneName into line it of card field id 1
  200.     put last word of item 1 of line it of card field id 1 into temp
  201.     delete last word of item 1 of line it of card field id 1
  202.     put temp&", " before first word of item 1 of line it of card field id 1
  203.     if last char of item 2 of line it of card field id 1 is " " then
  204.       put empty into last char of item 2 of line it of card field id 1
  205.     end if
  206.     put sort( card field "Phone Directory", "a" ) into card field id 1
  207.     set the scroll of card field id 1 to 0
  208.     set lockText of card field id 1 to true
  209.     hide card button id 4
  210.     show card button id 3
  211.     play harpsichord "gq"
  212.     set lockScreen to false
  213.   end if
  214. end newPhoneName
  215. -----------------------------------------------------------------------
  216. on DAlaunch
  217.   set cursor to 4
  218.   getDANames --ΓÇóΓÇóthanks Aron Roberts!ΓÇóΓÇó
  219.   play harpsichord "gq"
  220.   DoList "Select DA","Forget it!",namesOfDAs,one --ΓÇóΓÇóthanks J.L.Paul!ΓÇóΓÇó
  221.   if the result > 0 then
  222.     put item 2 of the result into daName
  223.   else
  224.     exit DAlaunch
  225.   end if
  226.   set cursor to 4
  227.   set lockScreen to true
  228.   doMenu "New Button"
  229.   hide btn "New Button"
  230.   put daName into btnName
  231.  
  232.   set rect of btn "New Button" to 128,312,211,326
  233.   set textStyle of btn "New Button" to plain
  234.   set textSize of btn "New Button" to 9
  235.   set textFont of btn "New Button" to Geneva
  236.   set textAlign of btn "New Button" to center
  237.   set showName of btn "New Button" to true
  238.   set the style of btn "New Button" to transparent
  239.   set the autoHilite of button "New Button" to true
  240.  
  241.   put "on mouseUp" & return into line 1 of newScript
  242.   put "doMenu" &"e&daName"e& return after newScript
  243.   put "show menuBar" & return after newScript
  244.   put "show bkgnd btn id 40" & return after newScript
  245.   put "end mouseUp" & return after newScript
  246.   set name of btn "New Button" to btnName
  247.   set script of btn btnName to newScript
  248.   show btn btnName
  249.   doMenu "Cut Button"
  250.   doMenu "Background"
  251.   doMenu "Paste Button"
  252.   doMenu "Background"
  253.   click at 150,315
  254.   set lockScreen to false
  255.   set the loc of msg to 20,204
  256.   put "Drag the new button to appropriate location and press Command-Tab" into message
  257.   show Message
  258.   repeat 3
  259.     set the hilite of bkgnd btn btnName to true
  260.     wait 20 ticks
  261.     set the hilite of bkgnd btn btnName to false
  262.     wait 20 ticks
  263.   end repeat
  264. end DAlaunch
  265. -----------------------------------------------------------------------
  266. on newQuikButton
  267.   ask "Enter the name of the new Quik ButtonΓǪ" with "               (maximum of 9 characters)"
  268.   if it is "               (maximum of 9 characters)" or it is empty then
  269.     exit newQuikButton
  270.   else
  271.     put it into newName
  272.     if the length of newName > 9 then
  273.       beep
  274.       answer "Only 9 characters are allowed! Try againΓǪ" with "OK"
  275.       exit newQuikButton
  276.     end if
  277.     ask "Enter the name of the 'Work Station' cardΓǪ" with " ΓǪas it appears in the card's title field!"
  278.     if it is " ΓǪas it appears in the card's title field!" or it is empty then
  279.       exit newQuikButton
  280.     else
  281.       put it into buttonName
  282.       find buttonName in field "card name"
  283.       if the result is not empty then
  284.         beep
  285.         answer "Can't find card"&"e& buttonName "e&" in stack!"
  286.         exit newQuikButton
  287.       else
  288.         set cursor to 4
  289.         push card
  290.         set lockScreen to true
  291.         go to card buttonName
  292.         get the id of this card
  293.         put it into Saver
  294.         pop card
  295.         doMenu "New Button"
  296.         set rect of btn "New Button" to 148,312,190,326
  297.         set textStyle of btn "New Button" to plain
  298.         set textSize of btn "New Button" to 9
  299.         set textFont of btn "New Button" to Geneva
  300.         set textAlign of btn "New Button" to center
  301.         set showName of btn "New Button" to true
  302.         set the style of btn "New Button" to transparent
  303.         put "on mouseUp" into line 1 of newScript
  304.         put "visual zoom open" into line 2 of newScript
  305.         put "go to "& Saver & "" into line 3 of newScript
  306.         put "end mouseUp" into line 4 of newScript
  307.         set the autoHilite of btn "New Button" to true
  308.         set the script of btn "New Button" to newScript
  309.         set name of btn "New Button" to newName
  310.         doMenu "Cut Button"
  311.         doMenu "Background"
  312.         doMenu "paste Button"
  313.         doMenu "Background"
  314.         click at 150,315
  315.         set the loc of message to 20,204
  316.         put "Drag the new button to appropriate location and press Command-Tab" into message
  317.         show msg
  318.         set lockScreen to False
  319.         repeat 3
  320.           set the hilite of bkgnd btn newName to true
  321.           wait 20 ticks
  322.           set the hilite of bkgnd btn newName to false
  323.           wait 20 ticks
  324.         end repeat
  325.       end if
  326.     end if
  327.   end if
  328. end newQuikButton
  329. -----------------------------------------------------------------------
  330. -- Script for ΓÇ£Add ApplicationΓÇ¥ button
  331. -- by Dennis C. DeMars, modified by Debbie Iwatate
  332. -- Note: This script uses the following XFCNs
  333. -- Filename written by Steve Maller
  334. -- GetAppIcon written by Dennis C. DeMars
  335. --.....................................................................
  336. function buttonName fullName
  337. put the length of fullName into lastChar
  338. repeat with i = lastChar down to 1
  339.   if char i of fullName = ":" then exit repeat
  340. end repeat
  341. return char (i + 1) to lastChar of fullName
  342. end buttonName
  343. -----------------------------------------------------------------------
  344. on appInstall
  345.   put fileName("APPL") into appFile
  346.   if appFile = empty
  347.   then exit appInstall
  348.   set cursor to 4
  349.   put buttonName(appFile) into appName
  350.   put long name of this stack into destFile
  351.   put char 8 to (number of chars in destFile - 1) of destFile into destFile
  352.   put GetAppIcon(appFile,appName,destFile) into iconNo
  353.   UpdateResFork
  354.   if iconNo = "0" then exit appInstall
  355.   set lockScreen to true
  356.   doMenu "New Button"
  357.   set name of last btn to appName
  358.   put the id of btn appName into butIDtemp
  359.   put the long name of this stack into stackName
  360.   delete first word of stackName
  361.   set style of btn appName to transparent
  362.   set showName of btn appName to true
  363.   set autoHilite of btn appName to true
  364.   set icon of btn appName to iconNo
  365.   set rect of btn appName to 161,142,244,199
  366.   put "on mouseUp" & return into buttonScript
  367.   put "if the commandKey is down then" & return after buttonScript
  368.   put "do ""e&"killButton""e&& return after buttonScript
  369.   put "KillResID "&stackName&",""e&"ICON""e&","&iconNo&& return after buttonScript
  370.   put "else" & return after buttonScript
  371.   put "global longname" & return after buttonScript
  372.   put "put " & quote & appFIle & quote & " into longname" & return after buttonScript
  373.   put "LaunchAPP" & return after buttonScript
  374.   put "end if" & return after buttonScript
  375.   put "end mouseUp" & return after buttonScript
  376.   set script of btn appName to buttonScript
  377.   set lockScreen to false
  378.   repeat 3
  379.     set the hilite of card btn appName to true
  380.     wait 20 ticks
  381.     set the hilite of card btn appName to false
  382.     wait 20 ticks
  383.   end repeat
  384. end appInstall
  385. -----------------------------------------------------------------------
  386. on launchApp
  387.   set cursor to 4
  388.   global longname
  389.   set hilite of target to false
  390.   if multifinder() is true then
  391.     if isRunning(short name of the target) is true then
  392.       beep
  393.       answer "This application is already running!"
  394.     else
  395.       put sublaunch (longname) into launchResult
  396.       if launchResult <0 then osErr launchResult
  397.       else if launchresult >0 then
  398.         beep
  399.         answer "Can't launch application, check RAM!"
  400.       end if
  401.     end if
  402.   else
  403.     open longname
  404.   end if
  405. end launchApp
  406. ------------------------------------------------------------------------
  407. -- Script for ΓÇ£Add DocumentΓÇ¥ button
  408. -- by Dennis C. DeMars, modified by Debbie Iwatate
  409. -- Note: This script uses the following XFCNs
  410. -- Filename written by Steve Maller
  411. -- GetDocIcon written by Dennis C. DeMars
  412. --.....................................................................
  413. on docInstall
  414.   put fileName("APPL") into appFile
  415.   if appFile = empty then exit docInstall
  416.   put fileName() into docFile
  417.   if docFile = empty then exit docInstall
  418.   set cursor to 4
  419.   put buttonName(docFile) into docName
  420.   put long name of this stack into destFile
  421.   put char 8 to (number of chars in destFile - 1) of destFile into destFile
  422.   put GetDocIcon(appFile,docFile,destFile) into iconNo
  423.   UpdateResFork
  424.   if iconNo = "0" then exit docInstall
  425.   set lockScreen to true
  426.   choose button tool
  427.   doMenu "New Button"
  428.   set name of last btn to docName
  429.   set style of btn docName to transparent
  430.   set showName of btn docName to true
  431.   set icon of btn docName to iconNo
  432.   set autoHilite of btn docName to true
  433.   set rect of btn docName to 150,150,233,207
  434.   put "on mouseUp" & return into buttonScript
  435.   --Modified buttonscript so that LaunchDoc may be used.
  436.   put "global longname" & return after buttonScript
  437.   put "put " & quote & docFIle & "," & appfile & quote & " into longname" & return after buttonScript
  438.   put "LaunchDoc" & return after buttonScript
  439.   put "end mouseUp" & return after buttonScript
  440.   set script of button docName to buttonScript
  441.   set lockScreen to false
  442.   repeat 3
  443.     set the hilite of card btn docName to true
  444.     wait 20 ticks
  445.     set the hilite of card btn docName to false
  446.     wait 20 ticks
  447.   end repeat
  448. end docInstall
  449. -----------------------------------------------------------------------
  450. on LaunchDoc
  451.   set cursor to 4
  452.   global LongName
  453.   set hilite of target to false
  454.   put Convertname(longName) into appName
  455.   put second item of longName into appPath
  456.   put first item of longName into docPath
  457.   if multifinder() is true then
  458.     if isRunning(appName) is true then
  459.       beep
  460.       answer "Please switch to the application to open this"
  461.     else
  462.       put sublaunch(appPath,docPath) into LaunchResult
  463.       if launchResult <0 then osErr launchResult
  464.       else if launchresult >0 then beep
  465.     end if
  466.   else
  467.     open docPath with appPath
  468.   end if
  469. end LaunchDoc
  470. -----------------------------------------------------------------------
  471. on stackInstall
  472.   doMenu "New Button"
  473.   ask "Enter the name of the new Stack ButtonΓǪ" with "Stack Button Name"
  474.   if it is "Stack Button Name" or it is empty then
  475.     doMenu "Cut Button"
  476.     choose Browse tool
  477.     exit stackInstall
  478.   else
  479.     put it into btnName
  480.     set name of last btn to btnName
  481.     set rect of btn btnName to 150,150,233,207
  482.     set style of btn btnName to transparent
  483.     set textFont of btn btnName to Geneva
  484.     set textSize of btn btnName to 9
  485.     set textStyle of btn btnName to plain
  486.     set showName of btn btnName to true
  487.     set autoHilite of btn btnName to true
  488.     set the loc of message to 20,294
  489.     put "Click on 'IconΓǪ' and select an icon for your new stack buttonΓǪ"
  490.     show msg
  491.     click at 170,170
  492.     play harpsichord "gq"
  493.     doMenu "Button Info..."
  494.     put "Click on 'Link toΓǪ', enter 'COMMAND-O', and select the linked stackΓǪ"
  495.     show msg
  496.     play harpsichord "cq"
  497.     doMenu "Button Info..."
  498.   end if
  499.   repeat 3
  500.     set the hilite of card btn btnName to true
  501.     wait 20 ticks
  502.     set the hilite of card btn btnName to false
  503.     wait 20 ticks
  504.   end repeat
  505.   hide msg
  506. end stackInstall
  507. -----------------------------------------------------------------------
  508. on WSbuttonMaker
  509.   global levelHolder
  510.   ---
  511.   play "Boing" gh
  512.   answer "Paste Work Station┬⌐ button into Home stack?" with "Go ahead!" or "Cancel"
  513.   if it is "Go ahead!" then
  514.     put the userLevel into levelHolder
  515.     show bkgnd field "Pasting Field"
  516.     show bkgnd btn "Work Station┬⌐"
  517.     set lockScreen to true
  518.     set cursor to 4
  519.     get the loc of bkgnd button "Work Station┬⌐"
  520.     choose Button tool
  521.     click at it
  522.     doMenu "Copy Button"
  523.     push card
  524.     go home
  525.     set the userLevel to 5
  526.     doMenu "Paste Button"
  527.     set rect of button "Work Station┬⌐" to 217,243,300,300
  528.     pop card
  529.     choose Browse tool
  530.     set lockScreen to false
  531.     play "Boing" gh
  532.     hide bkgnd field "Pasting Field"
  533.     hide bkgnd btn "Work Station┬⌐"
  534.     set the userLevel to levelHolder
  535.   end if
  536. end WSbuttonMaker
  537. -----------------------------------------------------------------------
  538. function ConvertName LongName
  539. set cursor to 4
  540. put the length of LongName into nameLength
  541. repeat with x = nameLength down to 1
  542.   if char x of LongName = ":" then exit repeat
  543. end repeat
  544. return char (x + 1) to nameLength of LongName
  545. end ConvertName
  546. -----------------------------------------------------------------------
  547. on idle
  548.   put the short time into line 2 of bkgnd field "date/time"
  549.   pass idle
  550. end idle
  551.  
  552.